Non-volatile memory systems like flash memory systems are widely used in compact electronic devices (e.g., digital cameras, digital camcorders, and digital music players) having a data storing function due to their compact size and re-programming ability. The number of program and erase operations may be restricted with respect to a flash memory cell array included in a non-volatile memory system, and more specifically, in a flash memory system. Since an insulation layer of cells included in the memory cell array is thin, the insulation layer may be worn away when the program and erase operations are repeated.
The abrasion state of cells may vary with how many times the cells have been programmed. For instance, some cells may be far more worn away than other cells. At this time, the cells that are badly worn away may degrade the entire performance of the flash memory system. In other words, when the number of cells badly worn away reaches a threshold value, the flash memory system may be recognized unusable even if other usable cells exist.
In order to increase the probability that cells in a flash memory system are uniformly worn away, methods of managing the number of erases (hereinafter, referred to as an erase count) by blocks in units of which cells are erased and uniformly using the blocks based on the erase count have been suggested. In flash memory systems, usually, a program operation is performed in units of cells, but an erase operation is performed in units of blocks including a plurality of cells. Accordingly, the erase count is managed by blocks.
One of those methods is disclosed in U.S. Pat. No. 7,085,161 in which the erase count is stored in spare bytes. Here, the spare bytes are included in memory cell arrays to replace bad bytes in a space for user data. FIG. 1 shows an example of a conventional logical structure of a memory cell array 10 including a spare array 13. Referring to FIG. 1, the memory cell array 10 includes a plurality of pages (P0, P1, . . . , PN) and each of the pages (P0, P1, . . . , PN) includes a main array 11 for storing user data and header information and the spare array 13 for replacing bad bytes in a space for the user data. Memory cells adjacent to the spare array 13 in the main array 11 are influenced by a program voltage when data is recorded in the spare array 13 and program inhibition cannot be perfectly achieved. Accordingly, the memory cells adjacent to the spare array 13 are easily subjected to program disturbance.
FIG. 2 is a flowchart of a conventional method of erasing a block in a non-volatile memory device. FIG. 2 is the drawing attached to U.S. Pat. No. 7,085,161 in order to explain a process of erasing data stored in a memory cell array in a flash memory system that manages the erase count as described above. Referring to FIG. 2, when a controller or a flash controller included in the flash memory system receives an erase command in operation 101, the flash controller addresses a block requested to be erased based on address information (which indicates a position of a block to be erased) included in the erase command in operation 103. Overhead data is read from a spare array of the block in operation 105 and is stored in a register in operation 107, and the block is erased in operation 109. The overhead data stored in the register is updated and written to the spare array of the erased block in operation 111. The result of the erase operation, i.e., erase status is sent to a host in operation 113.
However, program disturbance occurs at cells in a data area when the updated overhead data is written in operation 111, thereby increasing the number of partial program cycles (NOP) by 1. Here, the NOP is the number of times that cells connected with a single page can be programmed without an erase operation when the cells are programmed in units of a predetermined number of bytes. Accordingly, when the NOP increases, the life and performance of the non-volatile memory system decreases.
FIGS. 3A through 3D are graphs of cell distributions at different stages in a conventional method of erasing a block in a non-volatile memory device. FIG. 3A illustrates cell distributions in a main array and a spare array when the block is erased in operation 109 illustrated in FIG. 2. FIG. 3B illustrates the change in the cell distribution in the main array when a post-program operation is performed after operation 109. FIG. 3C illustrates the change in the cell distribution in the spare array when the overhead data is written in operation 111 illustrated in FIG. 2. FIG. 3D illustrates the change in the cell distribution in the main array when the overhead data is written in operation 111.
After the block is erased in operation 109, cells in the main array of the block and cells in the spare array of the block are distributed in the same range of threshold voltage Vth (V) as illustrated in FIG. 3A. After the post-program operation is performed with respect to the cells in the main array of the erased block after operation 109 although now shown in FIG. 2, the cells in the main array are distributed in the range of threshold voltage Vth, which is a little higher and narrower than the threshold voltage range illustrated in FIG. 3A, as illustrated in FIG. 3B. After the updated overhead data is written to the spare array in operation 111, the cells in the spare array are distributed in a changed threshold voltage range as illustrated in FIG. 3C. After the updated overhead data is written to the spare array in operation 111, the cells in the main array are influenced by a program voltage applied to the spare array and are distributed as illustrated in FIG. 3D. At this time, program disturbance occurs in cells distributed in a threshold voltage range Pd1 (e.g., the cells adjacent to the spare array 13 in FIG. 1). In other words, when overhead data is written to the spare array, program disturbance occurs in the cells distributed in the threshold voltage range Pd1, and therefore, the NOP of a current page is increased by 1, which may cause the life and the performance of the non-volatile memory device to be degraded.